package se19team1e.gui;

import java.util.List;

import se19team1e.controller.WithdrawJobAdvertController;
import se19team1e.entity.CompanyDTO;
import se19team1e.entity.DepartmentDTO;
import se19team1e.entity.JobAdvertDTO;

/**
 * An abstraction of a gui withdraw job advert form, to be referenced by the
 * application and controllers.
 * 
 * <p>
 * This interface is referenced by controllers, such that the underlying gui
 * mechanism can be swapped out easily in the future.
 * </p>
 * 
 * @author Nasri Bin Najib
 * 
 */
public interface WithdrawJobAdvertScreen extends BaseScreen {

	/**
	 * Initializes the form.
	 * 
	 * @param jobAdvert
	 *            Job Advert to withdraw.
	 * @param controller
	 *            Controller the screen belongs to.
	 * @param companies
	 *            Companies to display in the form.
	 * @param departments
	 *            Departments to display in the form.
	 */
	void initialize(JobAdvertDTO jobAdvert,
			WithdrawJobAdvertController controller, List<CompanyDTO> companies,
			List<DepartmentDTO> departments);

}
